Simulating Musical Instruments

ABSTRACT

The invention provides scoring a performance of a guitar part in a rhythm-action game. It operates in the context of a video game platform in communication with a display and a controller and involves receiving an input performance from the controller including at least one input chord note, each input chord note including an input string value corresponding to a struck string and an input fret value associated with the input string value. Then, a reference performance is provided, which includes at least two reference chord notes to be input at a target time, each reference chord note including a reference string value and a reference fret value associated with the reference string value. Then, a degree of matching is determined between the input performance and the reference performance, and a score is assigned to the input performance based on the degree of matching.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims benefit of priority to Application No.61/314,571, filed Mar. 16, 2010 and entitled “Simulating MusicalInstruments” by Booth et al. and to Application No. 61/353,519, filedJun. 10, 2010 and entitled “Simulating Musical Instruments” by Booth etal., the disclosures of which are incorporated herein by reference intheir entireties.

FIELD OF THE INVENTION

The present invention relates to video games, and, more specifically,rhythm-action games which simulate the experience of playing simulatedmusical instruments.

BACKGROUND

Music making is often a collaborative effort among many musicians whointeract with each other. One form of musical interaction may beprovided by a video game genre known as “rhythm-action,” which involvesa player performing phrases from an assigned, prerecorded musicalcomposition using a video game's input device to simulate a musicalperformance. If the player performs a sufficient percentage of the notesor cues displayed for the assigned part, the singer may score well forthat part and win the game. If the player fails to perform a sufficientpercentage, the singer may score poorly and lose the game. Two or moreplayers may compete against each other, such as by each one attemptingto play back different, parallel musical phrases from the same songsimultaneously, by playing alternating musical phrases from a song, orby playing similar phrases simultaneously. The player who plays thehighest percentage of notes correctly may achieve the highest score andwin.

Two or more players may also play with each other cooperatively. In thismode, players may work together to play a song, such as by playingdifferent parts of a song, either on similar or dissimilar instruments.One example of a rhythm-action game with different instruments is theROCK BAND® series of games, developed by Harmonix Music Systems, Inc.and published by Electronic Arts, Inc. and MTV Games. ROCK BAND®simulates a band experience by allowing players to play a rhythm-actiongame using various simulated instruments, e.g., a simulated guitar, asimulated bass guitar, a simulated drum set, or by singing into amicrophone.

With respect to simulating a drum experience, the ROCK BAND® series ofgames uses a drum peripheral comprising four pads, each associated witha color and lane in the game. From left to right, the colors are red,yellow, blue, and green. The pads also correspond to buttons on the gamecontroller. For example, for an Xbox 360 drum peripheral, the pads, fromleft to the right correspond to the B button, up on the control pad,down on the control pad, and A button. For the PlayStation, these arethe CIRCLE button, up on the control pad, down on the control pad, and Xbutton.

The ROCK BAND 2® drum peripheral also allows the player to connectoptional cymbal peripherals to the drum peripheral. Like the pads of thedrum peripheral, the cymbals also correspond to specific colors andlanes in the game and buttons on the controller. For example, a yellowcymbal corresponds to the yellow pad, and, when presented with a cue or“gem” to provide input corresponding to a “yellow” input, players canstrike the yellow pad or the yellow cymbal, or for multiple yellow gems,the player can strike just the pad, just the cymbal, or combinations ofboth. While the cymbals add a modicum of realism to the drummingexperience, one of the inventions described herein provides anexperience that is closer to simulating a real drumming experience.

ROCK BAND® also allows users to provide input using guitar controllersthat simulate a guitar. The “fake plastic guitars” however, do not trainplayers how to play a real guitar. One of the inventions describedherein provides instructions to a player such that skills can be carriedover from the game to playing an actual “real guitar.”

SUMMARY OF THE INVENTION

The invention herein is a game that allows a player to morerealistically simulate the experience of playing an actual instrument,such as the drums, a guitar, or a keyboard. One of the inventionsherein, implemented in various ways such as computerized methodsexecuted by a game platform, executable instructions tangibly embodiedin a computer readable storage medium, systems with an apparatusconfigured to perform particular functions, apparatuses with means forperforming the functions, and other forms of technology, providesplayers of a rhythm-action game a playing experience that more closelyresembles that of simulating a drumming experience. For example, in oneembodiment, there is a method of providing a realistic drum experiencein a video game. The method is executed on a video game platform incommunication with a display and a drum controller, where the drumcontroller has at least one cymbal and at least one drum pad. The methodincludes determining, by the processor, if a cue or gem to be displayedon the display in a particular sub-lane associated with a particularindicia should be a cue indicating a cymbal input or a cue indicating apad input. The method also includes displaying, on the display, in theparticular sub-lane, the cue indicating the cymbal input or pad input asdetermined in before. Then the game platform receives input from theplayer via the drum controller; and scores the input with a first scoreif the input was a cymbal input associated with the particular indiciaand scores the input with a second score if the input was an input otherthan a cymbal input associated with the particular indicia. In someimplementations, the indicia is a color. In some implementations thesecond score is equal to the first score if the input is a padassociated with the particular indicia. The second score can also beless than the first score if the input is a pad associated with theparticular indicia. Although a method is described, the same can beembodied as a computer program product or a system or apparatus.

Another invention described herein provides the player with a realisticguitar experience. The invention can be implemented as computerizedmethods executed by a game platform, executable instructions tangiblyembodied in a computer readable storage medium, systems with anapparatus configured to perform particular functions, apparatuses withmeans for performing the functions, and other forms of technology.

Another invention described herein is a method and system of scoringpartial chord hits for both a guitar simulation and for a simulatedkeyboard.

The inventions described herein, implemented in various ways such ascomputerized methods executed by a game platform, executableinstructions tangibly embodied in a computer readable storage medium,systems with an apparatus configured to perform particular functions,apparatuses with means for performing the functions, and other forms oftechnology, provides players of a rhythm-action game a playingexperience that more closely resembles that of a playing an instrument.This is achieved through several aspects of the invention.

In one aspect, the invention includes methods, systems with an apparatusconfigured to perform particular functions, computer program products,and apparatuses that provide means for displaying a game cue for aguitar part. These involve determining that an expected input data readinto a memory (e.g., RAM) comprises a fret value for each of at leasttwo simulated strings of a simulated guitar and then determining a basefret value from the fret values for each of the at least two simulatedstrings. Continuing this aspect, a shape value is determined for eachsimulated string of the at least two simulated strings, with the shapevalue based on the difference between the fret value for that simulatedstring and the base fret value. Then gem portions are displayedcorresponding to each fret value, with the magnitude of each gem portionbased on the shape value determined for each simulated string. Severalvariations of this aspect are possible. In some implementations, if theshape value is negative, no gem portion is displayed. Alternatively, ifthe shape value is negative, a gem portion is displayed at a minimalmagnitude. In some implementations, a game cue is drawn that includes,or is derived from, or represents, the gem portions displayed only ifthe expected input data further involves determining that (by way ofindication in a data file) that the expected input is a chord. In someimplementations, the gem portions displayed for a particular expectedinput time are themselves, individually or together, game cues.

In another aspect, there are also methods, systems with an apparatusconfigured to perform particular functions, computer program products,and apparatuses that provide means for displaying a player's input whenthe player is using an instrument simulating a guitar. Aspect includessimulating the strings of a guitar using separate fret inputs for eachof a plurality of actual or simulated strings, with the fret inputs eachincluding a fret value determined based on input provided by the playerto the fretboard of the simulated guitar. The aspect involves receivingfret input data from the simulated guitar, determining that the receivedfret input data comprises a fret value for each of at least onesimulated string of a simulated guitar, and determining a base fretvalue from the fret values for each of the at least one simulatedstrings. Then, a shape value is determined for each simulated string ofthe at least one strings, with the shape value being based on thedifference between the fret value for that simulated string and the basefret value. Then, fretting shape portions corresponding to each fretvalue are displayed, with the magnitude of each fretting shape portionbeing based on the shape value determined for each simulated string.

This aspect enjoys the benefits of several variations. In someembodiments, the fret value of each of the at least one simulated stringis displayed on or near the fretting shape portion for that simulatedstring for all of the at least one simulated strings. In otherembodiments, one or more of the fret values of one of the at least onesimulated strings is displayed on the corresponding simulated string. Insome embodiments, only one of the fret values of one of the at least onesimulated strings is displayed on the corresponding simulated string. Insome embodiments, the magnitude of each fretting shape portion islimited to a predetermined magnitude.

In some variations of this aspect, a success condition is assigned to aplayer when the fretting shape portions together match the shape of agame cue. Additionally or alternatively, a success condition is assignedto a player when the fretting shape portions together match the shape ofa game cue other than a portion of the game cue that represents an openstring. In one version of this implementation, the success condition isassigned only if the fretting shape portions match the shape of the gamecue at a specific time. Or, in another version, the success condition isstill assigned even if only some of the fretting shape portions matchthe shape of the game cue at a specific time. In another version, thesuccess condition is still assigned even if only a percentage of thefretting shape portions match a percentage of the shape of the game cueat a specific time.

Both of these aspects enjoy the following benefits. In some embodiments,the fret value of each of the at least one simulated string is displayedon or near the gem portion or the fretting shape portion for thatsimulated string for all of the at least one simulated strings. In otherembodiments, one or more (in some cases, only one) of the fret values ofone of the at least one simulated strings is displayed on or near thecorresponding simulated string. In some embodiments, the magnitude ofeach gem portion or fretting shape portion is limited to a predeterminedmagnitude. In some embodiments, the shape value is limited to apredetermined maximal value.

These aspects can further include determining, for the at least twosimulated strings, the simulated string closest to a string thatcorresponds to a low E string on a standard tuned guitar that has a fretvalue and then displaying the fret value on or near the gem portion orthe fretting shape portion for that simulated string. Or, alternatively,for the at least two simulated strings, the simulated string closest toa string that corresponds to a low E string on a standard tuned guitarthat has a fret value not associated with an open string is determinedand then the fret value is displayed on or near the gem portion or thefretting shape portion for that simulated string. In other embodiments,for the at least two simulated strings, the simulated string closest toa string that corresponds to a high E string on a standard tuned guitarthat has a fret value is determined and the fret value is displayed onor near the gem portion or the fretting shape portion for that simulatedstring. Alternatively, for the at least two simulated strings, thesimulated string closest to a string that corresponds to a high E stringon a standard tuned guitar that has a fret value not associated with anopen string is determined and the fret value is displayed on or near thegem portion or the fretting shape portion for that simulated string. Instill other embodiments, the simulated string with a fret value notassociated with an open string representing a position closest to aheadstock of a guitar is determined and the fret value of that simulatedstring is displayed on or near the gem portion or the fretting shapeportion for that simulated string.

In still other embodiments, it is determined that two of the at leasttwo simulated strings have the same fret value; and the fret value ofthe simulated string closest to a string that corresponds to a low Estring on a standard tuned guitar is displayed on or near the gemportion or the fretting shape portion for that simulated string and fretvalues are not displayed for any of the other at least two simulatedstrings. In one variation, the at least two simulated strings with thesame fret value have a fret value not associated with an open string andrepresent a position closest to a headstock of a guitar.

In still another embodiment two of the at least two simulated stringsare determined to have the same fret value and the fret value of thesimulated string closest to a string that corresponds to a high E stringon a standard tuned guitar is displayed on or near the gem portion orthe fretting shape portion for that simulated string, and fret valuesare not displayed for any of the other at least two simulated strings.In one implementation of this, the at least two simulated strings withthe same fret value have a fret value not associated with an open stringand represent a position closest to a headstock of a guitar.

In any of these embodiments, simulated strings with a zero fret valueare not considered in determining which fret value is the base fretvalue.

In another aspect, there are also methods, systems with an apparatusconfigured to perform particular functions, computer program products,and apparatuses that provide means for displaying a game cue. Theseinvolve reading an expected input data and determining a plurality ofgame cues that include at least two different fret values within apredetermined time interval for a particular simulated string of asimulated guitar. Then, a lowest fret value for the plurality of gamecues is determined and an offset value is determined for each fret valueof the expected input data, with the offset value being based on thedifference between the each fret value and the lowest fret value.Finally, a gem portion is displayed corresponding to each expected inputdata, the position of each gem portion being based on a reference pointand the determined offset value.

In some embodiments of this aspect, the reference point is the center ofthe display of the simulated string. In some of these embodiments, thelowest fret value is offset to the left from the center of the displayof the simulated string, while in other embodiments, the lowest fretvalue is offset to the right from the center of the display of thesimulated string. In any embodiment of this aspect, the amount of offsetfrom the reference point of the simulated string can be limited to apredetermined number of possible offsets. In some of theseimplementations, if there are more game cues in the plurality of gamecues than the predetermined number of possible offsets, a subset of theplurality is displayed at differing offsets and then the remaining gamecues are displayed at one particular offset.

In another aspect, there are also methods, systems with an apparatusconfigured to perform particular functions, computer program products,and apparatuses that provide means for displaying, in a lane, a sectionof repeatable inputs in a sub-lane of the lane. The aspect begins byloading cue data from a data file, the cue data including duration dataand a plurality of cues to be displayed in the sub-lane. Then, theplurality of cues and a section indicator are displayed in the sub-lane,with the section indicator based on the duration data and indicatingthat the plurality of cues are repeatable inputs. Then, a timer isstarted, the timer being independent of a timing window of any cue ofthe plurality of cues. Then, it is determined if an input is receivedfor the sub-lane before the timer reaches a timing threshold. If it isdetermined that the input is received for the sub-lane before the timerreaches the timing threshold, the timer is restarted and the pluralityof cues is maintained as repeatable inputs. If it is determined that theinput is not received for the sub-lane before the timer reaches thetiming threshold, the section indicator is modified to indicate that theplurality of cues are not repeatable inputs.

In one variation, the plurality of cues initially indicate that theplurality of cues are repeatable inputs and if it is determined that theinput is not received for the sub-lane before the timer reaches thetiming threshold, the plurality of cues are modified to indicate theplurality of cues are not repeatable inputs. In some embodiments, if theinput is not received for the sub-lane before the timer reaches thetiming threshold, it is determined if a threshold number of inputs isreceived for the sub-lane during the timing windows of the thresholdnumber of cues in the plurality of cues, and if the threshold number ofinputs is received for the sub-lane during the timing windows of thethreshold number of cues of the plurality of cues, the timer isrestarted and the section indicator is modified to indicate theplurality of cues are repeatable inputs again. In one version of this,the threshold number of inputs is one (and therefore successfullyplaying the input causes the plurality of cues to be repeatable). And insome implementations, the section indicator is displayed in at least aportion of a plurality of sub-lanes.

However, if the input is not received for the sub-lane before the timerreaches the timing threshold, in some embodiments, a successful inputcounter to zero, the timer is restarted, and it is determined if aninput is received for the sub-lane before the timer reaches the timingthreshold. If the input is received for the sub-lane before the timerreaches the timing threshold, the successful input counter isincremented and if the successful input counter equals a thresholdnumber of successful inputs, the section indicator is modified toindicate the plurality of cues are repeatable inputs. If the successfulinput counter is less than the threshold number of inputs, the previoussteps of restarting the timer and determining if the input for thatsub-lane is received before the timer reached the threshold arerepeated. If the input is not received for the sub-lane before the timerreaches the timing threshold, then the successful input counter is setto zero and the steps of restarting the timer and determining if theinput for that sub-lane is received before the timer reached thethreshold are repeated. In one implementation, the threshold number ofsuccessful inputs is two.

For implementations involving a guitar part, determining if the input isreceived further comprises determining if the input is a specific firstfret value. In some of these versions, if the input is received for thesub-lane before the timer reaches a timing threshold, it is determinedif a second input is received for the sub-lane before the timer reachesthe timing threshold. It is also determined if the second input is asecond specific fret value. If it is determined that the second input isthe second specific fret value, then the plurality of cues aremaintained as repeatable inputs. But if it is determined that the secondinput is not the second specific fret value, the section indicator ismodified to indicate the plurality of cues are not repeatable inputs.Then, the plurality of cues are maintained as repeatable inputs only ifthe first and second received inputs are received in a predeterminedpattern.

In another aspect, there are also methods, systems with an apparatusconfigured to perform particular functions, computer program products,and apparatuses that provide means for displaying, in a lane, a sectionof repeatable inputs in at least two sub-lanes of the lane. The aspectinvolves loading cue data from a data file, with the cue data comprisinga duration data and a first plurality of cues to be displayed in a firstsub-lane and a second plurality of cues to be displayed in a secondsub-lane. Then, presented on a display, are the first plurality of cues,a first section indicator, the second plurality of cues, and a secondsection indicator, the first and second section indicators based on theduration data and each indicating that the respective first and secondplurality of cues are repeatable inputs. A first and second timer arestarted for the respective first and second sub-lanes, with the firstand second timers being independent of a timing window of any cue of therespective first or second plurality of cues. Then, it is determined ifa first input is received for the first sub-lane before the first timerfor the first sub-lane reaches a first timing threshold and it isdetermined if a second input is received for the second sub-lane beforethe second timer for the second sub-lane reaches a second timingthreshold. Then, if it is determined that first or second input isreceived for the respective first or second sub-lanes before therespective first or second timer reaches the respective first or secondtiming threshold, the respective first or second timers are restartedand the first or second plurality of cues is maintained as repeatableinputs. But, if it is determined that first or second input is notreceived for the respective first or second sub-lanes before therespective first or second timers reach their respective first or secondtiming thresholds, the respective first or second section indicators aremodified to indicate the respective first or second plurality of cuesare not repeatable inputs.

In one embodiment of this aspect, if it is determined that first orsecond input is not received for the respective first or secondsub-lanes before the respective first or second timer reaches therespective first or second timing threshold, both the first and secondsection indicators are modified to indicate the respective first andsecond plurality of cues are not repeatable inputs.

In another aspect, there are also methods, systems with an apparatusconfigured to perform particular functions, computer program products,and apparatuses that provide means for displaying, in a lane, a sectionof repeatable inputs in a sub-lane of the lane. The aspect involvesloading cue data from a data file, with the cue data including aduration data and a plurality of cues to be displayed in the sub-lane.Then the plurality of cues is displayed in the sub-lane, the pluralityof cues indicating that they are repeatable inputs. A timer is thenstarted, with the timer being independent of a timing window of any cueof the plurality of cues. Then, it is determined if an input is receivedfor the sub-lane before the timer reaches a timing threshold. If it isdetermined that the input is received for the sub-lane before the timerreaches the timing threshold, the timer is restarted and the pluralityof cues is maintained as repeatable inputs. But if it is determined thatthe input is not received for the sub-lane before the timer reaches thetiming threshold, the plurality of cues is modified to indicate that theplurality of cues are not repeatable inputs.

In one implementation, if the input is not received before the timerreaches the timing threshold, it is determined if a threshold number ofinputs is received for the sub-lane during the timing window of one ofthe plurality of cues. If the threshold number of inputs is received forthe sub-lane during the timing windows of the threshold number of cuesof the plurality of cues, the timer is restarted and the plurality ofcues are modified to indicate the plurality of cues are repeatableinputs again. In some versions, the threshold number of inputs is one.

In one implementation, if the input is not received for the sub-lanebefore the timer reaches the timing threshold, a successful inputcounter is set to zero, the timer is restarted, and it is determined ifan input is received for the sub-lane before the timer reaches thetiming threshold. If the input is received for the sub-lane before thetimer reaches the timing threshold, the successful input counter isincremented, and if the successful input counter equals a thresholdnumber of successful inputs, the plurality of cues is modified toindicate the plurality of cues are repeatable inputs, but if thesuccessful input counter is less than the threshold number of inputs,the previous steps of repeating steps restarting the timer anddetermining if an input is received before the threshold are repeated.If, however, the input is not received for the sub-lane before the timerreaches the timing threshold, the successful input counter is reset andthe steps of restarting the timer and determining if an input isreceived before the threshold are repeated. In one implementation ofthis, the threshold number of successful inputs is two.

In one implementation of this aspect, determining if the input isreceived involves determining if the input is a specific first fretvalue. In a particular version of that implementation, if it isdetermined that the input is received for the sub-lane before the timerreaches a timing threshold, then it is determined if a second input isreceived for the sub-lane before the timer reaches the timing threshold.Then it is determined if the second input is a second specific fretvalue. If it is determined that the second input is the second specificfret value, the plurality of cues are maintained as repeatable inputs.But, if it is determined that the second input is not the secondspecific fret value, the plurality of cues are modified to indicate thatthe plurality of cues are not repeatable inputs. In one embodiment ofthis version, the plurality of cues are maintained as repeatable inputsonly if the first and second received inputs are received in apredetermined pattern.

In another aspect, there are also methods, systems with an apparatusconfigured to perform particular functions, computer program products,and apparatuses that provide means for scoring a section of repeatableinputs displayed in a sub-lane of a lane. This aspect involvesdisplaying a plurality of cues of a sub-lane that will be scored asrepeatable inputs. A timer is started, with the timer being independentof a timing window of any cue of the plurality of cues. Then it isdetermined if an input is received for the sub-lane before the timerreaches a timing threshold, and if the input is received for thesub-lane before the timer reaches the timing threshold, the timer isrestarted and a score is assigned to a player.

In some embodiments of this aspect, if the input for the sub-lane is notreceived before the timer reaches the timing threshold, a score isassigned based on determining if the input is within the timing windowassociated with any one cue of the plurality of cues in the sub-lane. Ifthe input is not received for the sub-lane before the timer reaches thetiming threshold, it is determined if a threshold number of inputs isreceived for the sub-lane during the timing windows of the thresholdnumber of cues in the plurality of cues, and if the threshold number ofinputs is received for the sub-lane during the timing windows of thethreshold number of cues of the plurality of cues, the steps of startingthe timer, determining if an input is received before the timer reachesthe timing threshold, and assigning a score to the player are repeated.In one version, the threshold number of inputs is one.

In one implementation, if the input is not received for the sub-lanebefore the timer reaches the timing threshold, a successful inputcounter is set to zero, the timer is restarted, and it is determined ifan input is received for the sub-lane before the timer reaches thetiming threshold. If the input is received for the sub-lane before thetimer reaches the timing threshold, the successful input counter isincremented. If the successful input counter equals a threshold numberof successful inputs, the steps of starting the timer, determining if aninput is received before the timer reaches the timing threshold, andassigning a score to the player are repeated. If, however, thesuccessful input counter is less than the threshold number of inputs,the steps of determining if an input is received for the sub-lane beforethe timer reaches the timing threshold and, if so, incrementing thecounter are repeated. But, if the input is not received for the sub-lanebefore the timer reaches the timing threshold, the successful inputcounter is set to zero, the timer is restarted, and the determination ofif the input for that sub-lane is received in time is repeated. In someversions of this, the threshold number of successful inputs is two.

In another implementation of this aspect, a second plurality of cues ofa second sub-lane that will be scored as repeatable inputs aredisplayed. A second timer is started, with the second timer beingindependent of a timing window of any cue of the second plurality ofcues. Then, it is determined if a second input for the second sub-laneis received before the second timer reaches a second timing threshold,and if so, the second timer is restarted and a second score is assignedto the player. In some embodiments, the timing threshold and the secondtiming threshold are equal, or alternatively, the second timingthreshold is based on the timing threshold. In some embodiments of thisimplementation, the score and second score are assigned to the playeronly if the received inputs alternate between that of the firstplurality and the second plurality. Alternatively, the score and secondscore are assigned to the player only if the inputs are received in apredetermined pattern.

In one implementation, determining if the input is received furtherinvolves determining if the input is a specific first fret value. Thenit is determined if the input is received for the sub-lane before thetimer reaches a timing threshold. It is also determined if a secondinput is received for the sub-lane before the timer reaches the timingthreshold. If the second input is determined to be a second specificfret value, and if the second input is a second specific fret value, asecond score is assigned to the player. But, in some instances, thescore and second score are assigned to the player only if the receivedinput and second input are received in a predetermined pattern.

In any of these aspects directed to displaying repeatable inputs,section indicators can indicate that the plurality of cues is a sectionof repeatable inputs by one or more of: glowing, flashing, highlighting,changing one or more of a position, a color property, a lightingproperty, a texture property, a size, a shape property, or a marking onthe section indicator, connecting the plurality of cues, or anycombination of these.

In any of these aspects, the section indicator can indicate that theplurality of cues are not repeatable by one or more of the following:removing the section indicator, dimming the section indicator, changingone or more of a position, a color property, a lighting property, atexture property, a size, a shape property, or a marking on the sectionindicator, or disconnecting cues if the plurality of cues are connected.

In any of these aspects, the length of time of the timing threshold canbe a function of the number of sub-lanes that include repeatable inputs.

In some instances, the section indicator is displayed bounding theplurality of cues, and of the plurality of cues can be displayed (ortheir display can be modified) such that they fade out of view. In someof those cases, if a subsequent input is not received before the timerreaches the timing threshold, the display of the plurality of cues canbe modified such that the plurality of cues reappear.

In another aspect, there are also methods, systems with an apparatusconfigured to perform particular functions, computer program products,and apparatuses that provide means for providing a realistic drumexperience in a video game. These operate in the context of a video gameplatform in communication with a display and a drum controller, with thedrum controller including at least one cymbal and at least one drum pad.The aspect begins by determining if a cue to be displayed on the displayin a particular sub-lane should be a cue indicating a cymbal input or acue indicating a pad input. Then, the cue is displayed in the particularsub-lane, indicating the cymbal input or pad input (dependent on theprevious determination). Then, input is received from the player via thedrum controller; and the input is given a first score if the input was acymbal input associated with the particular sub-lane and the input isgiven a second score if the input was an input other than a cymbal inputassociated with the particular sub-lane. In some implementations, eachsub-lane is associated with a color.

In some implementations, if a cue indicates a cymbal should be hit, itdoes not matter if the player hits the pad or the cymbal. In otherwords, the second score is equal to the first score even if the cueindicates a cymbal input associated with the particular sub-lane but thereceived input is a pad input associated with the particular sub-lane.Alternatively, the player can be punished for providing the wrong input,e.g., the second score can be less than the first score if the cueindicates a cymbal input associated with the particular sub-lane and thereceived input is a pad input associated with the particular sub-lane.Alternatively still, the second score can be zero if the cue indicates acymbal input associated with the particular sub-lane and the receivedinput is a pad input associated with the particular sub-lane.

Correspondingly, the same can be applied if the cue indicates a padinput is appropriate but the received input is a cymbal input. In otherwords, the first score is equal to the second score if the cue indicatesa pad input associated with the particular sub-lane and the receivedinput is a cymbal input associated with the particular sub-lane.Alternatively, the first score can be less than the second score if thecue indicates a pad input associated with the particular sub-lane andthe received input is a cymbal input associated with the particularsub-lane. And alternatively still, the first score can be zero if thecue indicates a pad input associated with the particular sub-lane andthe received input is a cymbal input associated with the particularsub-lane.

Other variations are possible for other gameplay elements, e.g., streak,bonus, etc, if the player provides the wrong input, e.g., a count of theplayer's consecutive successful inputs is reset if the cue indicates acymbal input associated with the particular sub-lane and the receivedinput is a pad input associated with the particular sub-lane. Or a countof the player's consecutive successful inputs is not reset if the cueindicates a cymbal input associated with the particular sub-lane and thereceived input is a pad input associated with the particular sub-lane.Alternatively, a count of the player's consecutive successful inputs isreset if the cue indicates a pad input associated with the particularsub-lane and the received input is a cymbal input associated with theparticular sub-lane. Or, a count of the player's consecutive successfulinputs is not reset if the cue indicates a pad input associated with theparticular sub-lane and the received input is a cymbal input associatedwith the particular sub-lane.

The player can also be incentivized to the strike the cymbals when theyare indicated. For example, the first score is a bonus score if thereceived input is a cymbal input and the cue indicates a cymbal inputand the second score is a bonus score if the received input is a padinput and the cue indicates a pad input. Or, the first score is a bonusscore if the received input is a cymbal input and the cue indicates apad input and the second score is a bonus score if the received input isa pad input and the cue indicates a cymbal input.

In some implementations, regardless of score, the whether the input issuccessful can be based on if the cymbal or pad is hit. For example, inone embodiment, it is determined that the input is a successful input ifthe received input is a cymbal input and the cue indicates a pad inputor if the received input is a pad input and the cue indicates a cymbalinput. Alternatively, the input is determined to be a successful inputonly if the received input is a cymbal input and the cue indicates acymbal input or if the received input is a pad input and the cueindicates a pad input.

In one version of this aspect, the version involves determining that acymbal for the particular sub-lane is plugged into the drum controllerand data in an input file indicates a cue is a cymbal. In one example ofthis version, the data in the input file indicates a cue is a cymbal bybeing a NOTE_ON event for a particular MIDI note.

In another aspect, there are also methods, systems with an apparatusconfigured to perform particular functions, computer program products,and apparatuses that provide means for scoring a performance of a guitarpart in a rhythm-action game. These operate in the context of a videogame platform in communication with a display and a controller. Theyinvolve receiving an input performance from the controller including atleast one input chord note, each input chord note including an inputstring value corresponding to a struck string and an input fret valueassociated with the input string value. Then, a reference performance isprovided, which includes at least two reference chord notes to be inputat a target time, each reference chord note including a reference stringvalue and a reference fret value associated with the reference stringvalue. Then, a degree of matching is determined between the inputperformance and the reference performance, and a score is assigned tothe input performance based on the degree of matching.

In some implementations of this aspect, determining the degree ofmatching between the input performance and the reference performanceinvolves determining that an input chord note of the at least one inputchord notes is a correct input if the input chord note matches areference chord note of the at least two reference chord notes within arange of the target time. In these implementations, the input chord notematches a reference chord note if the input string value is equal to thereference string value and the input fret value is equal to thereference fret value. In some of these cases, determining the degree ofmatching further involves determining a count of correct inputs in theinput performance. Then, a ratio of correct inputs is determined basedon the count of correct inputs and a count of the at least two referencechord notes. Then, the score that is assigned is based on the ratio ofcorrect inputs being above or equal to a threshold value, e.g., a valueof 0.5. Alternatively, the score can be assigned based on a tablelookup, such as a table lookup based on the count of correct inputs, orbased on a count of the at least two reference chord notes.

Alternatively, a count of incorrect inputs in the input performance canbe determined by subtracting the count of correct inputs from a count ofthe at least one input chord notes. Then, a ratio of incorrect inputscan be determined based on the count of incorrect inputs and a count ofthe at least two reference chord notes. In these scenarios, the score isassigned based on the ratio of incorrect inputs being below or equal toa threshold value, e.g., a value of 0.5. As above, the score can beassigned based on a table lookup, such as a table lookup based on thecount of incorrect inputs, or based on a count of the at least tworeference chord notes.

In some embodiments of this aspect, an input fret value of zerorepresents an open strum. Similarly, a reference fret value of zero canalso represent an open strum.

In any embodiment of this aspect, a streak counter can be reset based onthe degree of matching, e.g., if the input performance sufficientlymatches the expected performance, the streak is not reset. Or, if itdoes not match the reference performance exactly, the streak is reset.Additionally, a musical output corresponding to the guitar part can bealtered based on the degree of matching. Or a crowd meter can beadjusted based on the degree of matching.

Other aspects and advantages of the inventions will become apparent fromthe following detailed description, taken in conjunction with theaccompanying drawings, illustrating the principles of the invention byway of example only.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, features, and advantages of theinventions herein, as well as the inventions themselves, will be morefully understood from the following description of various embodiments,when read together with the accompanying drawings, in which:

FIG. 1A is a diagram depicting a game platform and various components insignal and/or electrical communication with the game platform;

FIG. 1B is a diagram depicting various components and modules of a gameplatform;

FIG. 2 is an exemplary screenshot showing cymbal gems and pad gems;

FIG. 3 depicts an exemplary method used for displaying the gems in FIG.2;

FIG. 4A depicts a screenshot showing a roll section;

FIG. 4B depicts the logic used to display a section as a roll section;

FIG. 5A depicts a screenshot of an interface presented to the playerattempting to play a guitar simulation;

FIG. 5B depicts gems that are shifted based on their position relativeto each other;

FIG. 6 depicts a wave-like chord shape reflecting the fingering on theguitar neck that the player is using;

FIG. 7 shows more advanced chord gems;

FIGS. 8A and B show examples of sustains;

FIG. 9 shows a repeated pattern of pull-offs that are repeated onvarious strings;

FIG. 10 depicts a screenshot showing a trill on the guitar simulation;

FIG. 11 depicts a screen shot showing arpeggiated chord;

FIG. 12 shows an arpeggiated section with augments;

FIG. 13 shows gems indicating palm muting may be used;

FIG. 14 depicts gems indicating an area strum;

FIG. 15 depicts a keyboard implementation of the game that allows forpartial chord hits on a musical keyboard;

FIG. 16 depicts a series of cues indicating a glissando on a keyboard;and

FIG. 17 shows an indicator that the set of keys the user is playing willshift soon.

DETAILED DESCRIPTION Architecture

FIG. 1A is a diagram depicting a game platform 100 for running gamesoftware and various components in signal communication with the gameplatform. Each player may use a game platform 100 in order toparticipate in the game. In one embodiment, the game platform 100 is adedicated game console, such as: PLAYSTATION® 2, PLAYSTATION® 3, or PSP®manufactured by Sony Corporation; WII™, NINTENDO DS®, NINTENDO DSi™, orNINTENDO DS LITE™ manufactured by Nintendo Corp.; or XBOX® or XBOX 360®manufactured by Microsoft Corp. In other embodiments, the game platform100 comprises a personal computer, personal digital assistant, orcellular telephone. Throughout the specification and claims, wherereference is made to “the game platform 100” performing a function,“game platform 100” may, for some implementations, be read as “gameplatform 100 with game software executing on it.” References to the gameplatform 100 and omission of reference to the game software does notimply absence of the game software. Game software alone may also embodythe invention, e.g., a computer program product, tangibly embodied in acomputer-readable storage medium, while in some embodiments theinvention is implemented purely in hardware such as a computer processorconfigured to perform specific functions. In other embodiments theinvention is embodied by a combination of hardware and software.

The game platform 100 is typically in electrical and/or signalcommunication with a display 105. This may be a television, an LCDmonitor, projector, or the like. The game platform is also typically inelectrical or signal communication with one or more controllers or inputdevices. In FIG. 1A, the game platform 100 is in signal communicationwith a one or more microphones 110, a first simulated guitar controller115 a, a second simulated guitar controller 115 b (guitar controllers,collectively, 115), and one or more drum peripherals 117. In the exampleshown in FIG. 1A, the drum peripheral 117 has the optional cymbals 119a, 119 b, and 119 c attached. Other inputs can be other simulatedinstruments such as keyboards (not shown), standard controllers for therespective game platforms, and/or keyboards and/or mice (also notshown). Microphones, controllers, etc. may be connected via a physicalwire, e.g., via a USB connection, or may be connected wirelessly, e.g.,via Bluetooth, FM, a proprietary wireless protocol used by the MicrosoftXbox 360 game console, or other wireless signaling protocols.

Though reference is made to the game platform 100 generally, the gameplatform, in some embodiments such as that depicted in FIG. 1B, containshardware and/or software that perform general or specific tasks, such asa central processing unit 120, an instrument analysis module 125, asinging analysis module 130, a sound processing module 135 that providessound output, e.g., to a speaker, a storage device 140, Random AccessMemory 145, Read Only Memory 150, peripheral interfaces 155, networkinginterface 160, media interfaces 163 (e.g., a CD-ROM, DVD, or Blu-Raydrive or SD, Compact Flash, or other memory format interfaces), graphicprocessors 165 and others. Each module may also contain sub-modules. Forexample the singing analysis module 130 may contain a data extractormodule, a digital signal processor module, a comparison module, and aperformance evaluation module (not shown). Alternatively, in softwareimplementations of the modules, modules or combinations of modules mayreside within the RAM 145 or ROM 150 (and/or be loaded into these frommedia via the media interface 163 or from storage 160) for execution bythe central processing unit 120.

In some embodiments, execution of game software limits the game platform100 to a particular purpose, e.g., playing the particular game. In thesescenarios, the game platform 100 combined with the software, in effect,becomes a particular machine while the software is executing. In someembodiments, though other tasks may be performed while the software isrunning, execution of the software still limits the game platform 100and may negatively impact performance of the other tasks. While the gamesoftware is executing, the game platform directs output related to theexecution of the game software to the display 105, thereby controllingthe operation of the display. The game platform 100 also can receiveinputs provided by one or more players, perform operations andcalculations on those inputs, and direct the display to depict arepresentation of the inputs received and other data such as resultsfrom the operations and calculations, thereby transforming the inputreceived from the players into a visual representation of the inputand/or the visual representation of an effect caused by the player.

In some embodiments, the processor 120 reads song data from a MIDI-likefile. MIDI tracks in the file dictate information for specificinstruments or game objects, such as cameras or scene information. TheMIDI “notes” in the tracks are indicators for song data, gem placementinformation, avatar action cues, camera cuts, cues for events on stage,and other game events. Although the MIDI file uses MIDI note numbers,these MIDI notes do not typically correspond to actual note or pitchinformation.

As an example, a drum part could be stored in a MIDI track entitled“PART DRUMS” with certain “notes” in the PART DRUMS track mapping to gemplacement. Continuing the example, note 61 corresponds to the placementof a gem in the left-most sub-lane on easy difficulty, note 62 to a gemin the second-left-most-sub-lane on easy difficulty, etc., such that60-64 represents all gem placement data for the easy difficulty (with 60representing the kick drum gem). The use of the term “sub-lane” merelyindicates a logical separation of gems and is not limited by any displayimplementation or orientation. A similar sequence of notes is used forthe other difficulties. Notes 73-76 correspond to the placement of gemsfrom the left-most sub-lane to the right-most sub-lane on mediumdifficulty (with 72 being kick drum), notes 84-88 are used for all gemson hard difficulty, and notes 96-100 are used for all gems on expertdifficulty. In this scenario, when the processor 120 determines theplayer is playing drums on medium difficulty, as the processor processesthe song data file, it renders a gem in the left most sub-lane for everyNOTE_ON event for note 73. FIG. 2 provides an example of data read bythe processor 120 and rendered on the display 105.

Game Interface

FIG. 2 is an exemplary screenshot of a drumming interface. In FIG. 2, alane 200 is used to display gems 220 a, 220 b, 220 c, and 220 d(collectively 220) in various sub-lanes. The gems 220 appear to flowtoward a target marker 225, also called a Now Bar. The Now Bar 225represents what the player should be inputting at a particular moment,i.e., now. In the embodiments shown, the gems 220 appear to flow fromthe “back” of the screen towards a player as if in a three-dimensionalspace, on a spatial path that does not lie within the image plane. Insome embodiments, however, the gems 220 flow from right to left, whilein other embodiments, they flow left to right. Gems may also flow fromthe bottom of the screen towards the top and from the top to the bottom.

The gems 220 are usually distributed in the lane 200 in a manner havingsome relationship to the expected input mechanism. For example, gems inthe right-most sub-lane are associated with the right-most drum pad orcymbal. As mentioned above, typically there is a correspondence in coloras well, e.g., a green gem appears in the right-most sub-lane and agreen pad on a drum peripheral is the right-most pad. Even during leftyflip mode, where the player can play left-handed, there is still acorrespondence between the sub-lanes on the screen and the pads of thedrum. Although these are the typical embodiments, there are someembodiments where the player has rearranged pad on the drum such thatthere is no correspondence between drum pad arrangement and sub-lane.The player may do this for comfort, or additional challenge, or a hostof other reasons.

As the gems 220 move through the lane within their respective sub-lanes,the player is expected to hit or strike the appropriate drum pad orcymbal when the gem 220 intersects with the Now Bar 225. If the playerstrikes the drum pad or cymbal at the correct time, an audio track ofthe drum part of the song stays unmuted. If the player does not strike adrum at the right time, or he strikes the wrong drum pad or cymbal, theaudio track is silenced or muted, or, in some embodiments, the sound isattenuated so it is not played at full volume. Also, in someembodiments, a sample of an incorrectly played sound, or “muff” sound isheard. When the player begins hitting the pads correctly again, the drumpart of the music is played again at normal volume.

In prior art games, only gems such as 220 a or 220 c, i.e., gems thatdid not distinguish between cymbals or pads, were presented to theplayer, even if the player had cymbals attached to the drum peripheral.Although the cymbals gave the player flexibility—he could satisfy thecue timing by striking the pad or the cymbal—that was the extent of theaddition. In the present drumming invention, cymbal gems 220 b and 220 dare added to force the player to choose which surface to strike, therebygiving the player a more realistic drumming experience.

Before gameplay starts, the game prompts the player to input theconfiguration of cymbals that the player has connected to the drumperipheral and which colors the cymbals should be assigned to. Forexample, because cymbals are sold in varying amounts, i.e.,individually, in two packs, or in three packs, a player may only haveone, two, or three cymbals plugged in. If the player does not have threecymbals, some players may associate the cymbals they do have withcertain color combinations, e.g., green and blue, or blue and yellow,etc. In some embodiments, the game automatically determines whichcymbals are plugged in and which colors the cymbals are associated with.

FIG. 3 depicts the algorithm used to determine which gems are displayedas cymbal gems. When the song is loaded 300, the processor 120 of thegame platform 100 reads the gem placement data 305 from the filerepresenting the song. Alternatively, the data can be read real-time andthe processor is continually determining during the song if gems shouldbe cymbal gems or regular gems. The processor 120 then determines 310,315 both that the gem is designated in the song file as a cymbal gem andthat cymbal that is plugged in.

Determining if a gem is designated as a cymbal gem in the file istypically accomplished one of two ways. In one, note numbers thatcorrespond to yellow, blue, and green inputs (e.g., MIDI note numbers62, 63, 64 on easy, 73, 74, 75, on medium, etc.), are by default cymbalgems. Only when a NOTE_ON event is present in a different MIDI note,e.g., 110, 111, or 112, is a yellow gem, blue gem, or green gem renderedas a regular gem (i.e., corresponding to a tom tom). Another way is theopposite approach—by default the inputs are tom tom inputs and only whena NOTE_ON event is present for another note are the gems rendered ascymbal gems. In either case, the information as to whether a gem isdesignated as a cymbal gem is in the song data file.

If the gem is designated as a cymbal gem in the song file, and thatcymbal is plugged in, the gem is rendered 320 by the graphics processor165 on the display 105 as a cymbal gem. If the gem is designated forthat sub-lane but is not designated as a cymbal gem, the gem is rendered325 as a regular tom tom gem. If the gem is designated as a cymbal gem,but that cymbal is not plugged in, the gem is rendered 325 as a regulargem. Although the determination 310, 315 is depicted as being twoseparate steps, one skilled in the art would understand that the stepscan be reversed or combined into one determination step, e.g., using alogical AND operator.

Referring back to FIG. 2, when some gems are designated and drawn ascymbal gems 220 b, 220 d, the type of gem that the gem is may affectgameplay depending on which “surface” the player strikes. A surfacerefers to the physical surface the player hits, regardless of color.This allows the processor, when receiving player input, to determine thecolor of the input as well as determine if the input was from a cymbalor a drum pad. This is useful for “Pro” mode where the player isexpected to provide input that corresponds exactly to the gems onscreen,e.g., hitting the yellow pad and blue cymbal when gems 220 c and 220 bcross the Now Bar 225 and hitting the yellow cymbal and blue pad whengems 220 d and 220 a cross the Now Bar.

In some embodiments, when a gem of a given color and type is drawn,hitting a surface of the same color but the wrong type (e.g., hitting ablue cymbal when a normal blue gem is drawn, or a blue pad when a bluecymbal gem is drawn) is considered a miss. In these cases, the playerreceives no points or is penalized as if they had struck a different pador had not struck any surface at all.

In other embodiments, the color a player strikes is accorded more weightand the surface is ignored. For example, when a gem of a given color andtype is drawn, hitting a surface of the same color is considered a hit,regardless of which surface of that color is struck.

In still other embodiments, satisfying the color requirement isimportant, and satisfying the surface requirement gives a bonus. Forexample, when a gem of a given color and type is drawn, hitting asurface of the same color but the wrong type is considered a hit, buthitting a surface of the same color and the correct type (e.g., hittinga blue cymbal when a blue cymbal gem is drawn, or a blue pad when anormal blue gem is drawn) is considered a hit that yields a bonus, e.g.,an additional 10% point award.

In some embodiments, all hits in sub-lanes which have associated cymbalsare given a bonus, i.e. 10% more points. This gives the player anincentive to plug in the cymbal corresponding to that color.

Other alternatives are also contemplated. For example, in someembodiments, a bonus is given only for striking the right color and theright surface i.e., hitting a pad when the gem is a non-cymbal gem andfor hitting a cymbal when the gem is a cymbal gem. Also considered ispenalizing the player for striking the correct color, but the wrongsurface, i.e., striking the cymbal when the pad is specified and viceversa.

Also contemplated are implementations that impact other parts of thegame that are not strictly point-oriented. For example, hitting theright color but hitting the wrong surface will not break a streak ofconsecutive correct notes, but the player earns no score or a reducedscore for that hit. Alternatively, the normal score is awarded, but thestriking the wrong surface breaks the player's consecutive streak. Insome embodiments the player is penalized in both manners for hitting theright color but the wrong surface, i.e., a reduced or zero score and thestreak is broken.

Adjusting Timing Allowed for Player Input

Prior art games have approached determining the success of a player'sinput in various ways. Because it is virtually impossible for a playerto provide the correct input at exactly the correct time (e.g., at theexact millisecond), some prior art games have provided a “slop window”where if a player strikes the correct input at the correct time +/− avalue, e.g., 50 milliseconds, that strike is considered a correct inputwith no regard to where in the +/− window the strike was. Other priorart games grade a player on how close to the correct time the player hasprovided the input, e.g., the correct time +/−10 milliseconds is aPERFECT, the correct time +/−30 milliseconds is GOOD, +/−50 millisecondsis FAIR, and so on. But often these games are frustrating to a playerwhere multiple inputs are presented with overlapping timing windows, forexample in a drum game where there is a rapid succession of note, e.g.,a drum roll. Additionally, it is difficult to determine, for two gems inthe same sub-lane that are close together, if the player is providinginput for the gem that has just passed the Now Bar 225 or the one thatis about to cross it.

The present invention provides a solution to this problem. The processbegins by the processor 120 reading the song data from the song file.When the processor 120 reads the song data from the file, it reads thegem placement data and determines if certain section of the song aredesignated as “roll” or “trill” sections. Rolls are usually associatedwith drum or percussion parts, whereas trills are usually associatedwith note producing instruments, e.g., guitars, woodwinds, horns, etc.In both cases, the player is presented with multiple gems in quicksuccession. With rolls, the gems are typically in the same sub-lane,although in some embodiments, gems can be in two sub-lanes and arepresented in parallel. Trills are typically multiple sets of alternatinggems in different sub-lanes, but may also be a series of gems thatfollow a fixed pattern. Many of the rules and functionality that governthe display and scoring of rolls also apply to trills. Rolls will bediscussed first and any differences with respect to trills will follow.

In one embodiment, whether a series of notes is a roll or trill sectionis based on indicators in the song data. Where MIDI files or MIDI-likefiles are used to store song information, a roll or trill is indicatedby a particular nonzero MIDI note number that is designated as “on” foras long as the roll or trill is supposed to last. For example, a roll isindicated by MIDI note 126 being on, and a trill is indicated by MIDInote 127 being on. Thus, for PART DRUMS, if there are NOTE_ON andNOTE_OFF events for notes 61, 61, 60, 60, 60, 60, 61, and there is aNOTE_ON event for note 126 that coincides with the first note 60 and hasa NOTE_OFF event coinciding with the NOTE_OFF the last note 60 (orthereabouts), the gems associated with 60, i.e., the left-most sub-lane,on easy difficulty, would be in a roll section.

A roll is presented to the player by coloring the sub-lane underneathgems—cymbal gems or regular gems—to indicate the boundaries of the rollsection. Referring to FIG. 4A, and ignoring sub-lane 415 for a moment, aroll is indicated by applying red highlighting or a red roll sectionindicator (shown in FIG. 4A as vertical shading) to a portion (400 aextending through 400 b collectively 400) of sub-lane 410 under the gems405 a, 405 b, 405 c, 405 d, and 405 e. Accordingly, logic for scoringroll gems is applied to any gem 405 within the roll section 400. Anygems after the roll section 400, e.g., any gems than are placed insub-lane 410 but are not in roll section 400, e.g., area 420, are nottreated as roll gems.

Special scoring and timing rules apply to roll gems. Specifically, thetiming window for each individual gem in the roll section is effectivelydisabled. Instead, the timing of the player's input is judged against aroll interval. As long as a player provides input for that surfacebefore the roll interval expires, the roll is considered ongoing and theindividual gems' timing windows are ignored. Beneficially, during aroll, or if a player successfully completes a roll, a bonus ormultiplier can be applied to the player's score, or special events oranimations occur in the game. Additionally, game events can be driven byother aspects of the player's performance of a roll. For example,animations may be driven based on the player's roll speeds increasing ordecreasing, or if the player's drumming exceeds the roll interval, or ifthe roll breaks or resumes.

Roll logic, such as the roll interval or if a particular surface of acolor needs to be struck, can also be altered or designated on aper-difficulty, per-song, or even per-roll section level, orcombinations of these, e.g., a roll can be set differently for a givensong for each of its difficulty levels. Because rolls can also be usedby different instruments, e.g., as explained below with respect to aguitar simulation, the roll interval (and trill interval) can bespecified on a per-instrument basis as well.

In the screenshot depicted in FIG. 4A, and still ignoring sub-lane 415,assume the gems in sub-lane 410 are placed 100 milliseconds apart.Because the section is designated a roll section, the player mustprovide input before the predetermined roll interval expires, e.g.,least every 165 milliseconds, for the roll to continue. For example, theplayer could hit the red drum pad every 50 milliseconds and the rollwould continue. Or, the player could continue the roll by hitting a padat 25 milliseconds, and then 68 milliseconds after that and then 22milliseconds after that, and then 12 milliseconds after that. In bothscenarios, the timer that measures if the player has input the requiredinput resets each time the player hits the designated pad or cymbal.

Beneficially, a roll can be shared between sub-lanes—a multi-sub-laneroll—where the player is supplying input to two different pads orcymbals (or a combination of both). The roll interval for multi-sub-lanerolls can be determined automatically from a single sub-lane rollinterval, or can be looked up based on the number of sub-lanes sharingthe roll, or can be set manually on a per-difficulty, per-song, orper-roll section level. In some embodiments, for each sub-lane in amulti-sub-lane roll, there is an independent timer that must besatisfied to maintain the roll. In other embodiments, a multi-sub-laneroll has a single timer that must be satisfied among all the sub-lanesdesignated as roll sections. In some implementations, the number of hitsin each sub-lane must be generally equivalent to prevent cheating (e.g.,providing input for only one of the sub-lanes).

In FIG. 4A, and now considering sub-lane 415, the player must supplyinput to both the red pad and the yellow cymbal as a roll. The playercan either alternate striking the red pad then yellow cymbal, or he canstrike both simultaneously. Because the roll is indicated for twosub-lanes, the player will likely dedicate one drumstick to each input.Compared to a single sub-lane roll, where the player is striking thesame pad with two drumsticks, a two-sub-lane roll is typically slowersince the player is splitting the striking between the two surfaces. Tocompensate for this, the time required to continue the roll for eachsurface is increased to give the player more time to strike theindicated surface. For example, the player may have to provide input forthe each of the two sub-lanes 410 and 415 every 225 milliseconds,striking both the red pad and the yellow cymbal at least once. Thestrikes can be generally at the same time, or they can be alternating;they just need to occur on both pads within the roll interval. Where thetrill is based on a predetermined pattern, each sub-lane participatingin the pattern has a timer and the player has to satisfy each sub-lanefor the trill to succeed. Alternatively, there could be one timer forthe trill and the player must simply provide the required inputs in thepatterned order.

FIG. 4B depicts the logic used to display a sub-lane as a roll section.The processor 120 loads 425 song data from the song file. The processor120 reads 430 the gem placement data and determines 435 if a sub-lane isdesignated as a roll section. As discussed above, in some embodiments,this is done by determining if a MIDI NOTE_ON event exists for MIDI note126. As long as MIDI note 126 is designated as on, the designatedsub-lanes are displayed 445 as roll sections. Alternatively, in someembodiments, only gems that start at the same time as the roll sectionhave their sub-lanes as a roll sections. In other embodiments, any gemsthat coincide with a roll section indicator, across all sub-lanes, havetheir sub-lane designated as a roll section. Regardless, if a sub-laneis not designated as a roll section, the sub-lanes are displayed 440 asnormal sub-lanes.

Alternatively, in some implementations, the roll-sections are designatedon a per-sub-lane basis, which allows for non-roll input in othersub-lanes while a roll is being performed in participating sub-lanes. Inthese implementations, each sub-lane is designated in the song data fileby a corresponding MIDI note as being a roll section or the sub-laneswhich have a gem starting simultaneously with the roll marker can bedesignated as participating in the roll.

For both single sub-lane and multi-sub-lane rolls, if the player doesnot provide the needed input before the roll interval expires, the rollbreaks, the roll section indicator 400 underneath the gems sub-lane dimsor disappears altogether and normal beat matching game play resumes,i.e., the player must hit each gem within its timing window. A roll canbe restarted though (if the section is still designated in the song fileas a roll section) if the player begins providing input that satisfiesthe roll interval. In that case, the roll reactivates, the roll sectionindicator 400 reappears (if it disappeared) or becomes bright (if itdimmed) and the gems and sub-lane(s) are depicted as roll sections.

In some embodiments, a roll that is active for two sub-lanes can bebroken or maintained for each sub-lane individually. For example, if theplayer is satisfying the roll interval for the red sub-lane, but not theyellow sub-lane, the red sub-lane will stay in roll mode but the yellowsub-lane gems will become regular beatmatch gems.

Beneficially, in some embodiments, as long as the timers are satisfied,the roll is maintained, even if other notes are hit during the roll.This provides a gameplay experience where the user is playing a roll,but other drum or cymbal hits can be presented as well, such asoccasional crash cymbals.

Trills operate similar to rolls in that they ignore gem timing windowsand have an interval in which the player must provide the requiredinput. As described above, trills are designated by a MIDI NOTE_ON eventfor MIDI note 127, and run until the corresponding NOTE_OFF event.Alternatively, in some implementations, trills can be detected from thesong data file by finding a series of repeated alternating gems or gempatterns. In still other implementations, trills can be set manually byan author of the song data file by using a gem and one or moreinformational or “ghost” gems, (i.e., a gem with a different channelsetting than gems used for gameplay) in which case the trill alternatesin an arbitrary order, starting from the real gem.

Trills, however, require the player to alternate inputs among two ormore designated notes. For example, in a regular five or ten buttonguitar controller for use with ROCK BAND®, a trill would be displayedusing two sub-lanes, e.g., left most (green) and second-left-most (red),and the player must alternate providing green and red inputs. The playersuccessfully performs the trill by holding down the “lower” or left-mostbutton (green) and use a repeated hammer-on for the “higher” input (red)before the trill interval expires. The player then performs a pull-offof the higher input (red) back to provide a lower input (green) beforethe trill interval expires. Although hammer-ons/pull offs are given asan example, trills are not limited to these techniques. Players can alsotrill using a traditional strum and finger technique to trill.Regardless, the player performs the alternating input and the process isrepeated until the trill section is over. Trills could also follow apattern of inputs, e.g., they could have a pattern of red, yellow,green, red, yellow, green.

In a real guitar controlled implementation, e.g., as depicted in FIG.10, a single sub-lane is used, but the player must provide inputs on thesame “string” for two different frets, e.g., 9 and 12. In both cases, atrill is similar to a roll in that each input must be performed within aroll/trill interval or the trill breaks.

Although two notes are discussed, it should be noted that trills do notmandate just two notes in any of the embodiments—they can be almost anypattern. For example, in embodiments with a keyboard instrument(described below), a trill could be any combination of repeated inputs,e.g., the player's thumb and third finger alternating with second andfourth finger. Alternatively, for guitar simulations, trills can also beused to indicate tremolo picking, which does not alternate between twonotes—rather it stays on one—but the picking is very quick. In a sense,tremolo picking is like a drum roll on one string.

Although similar to rolls, the trill interval is distinct from the rollinterval, and is typically set lower, e.g., 160 milliseconds for trillsversus 165 milliseconds for rolls. Like rolls, trills can also be set oraltered on a per-difficulty, per-song, or even per-trill section level,or combinations of these, e.g., trills can be set differently for agiven song for each of its difficulty levels.

Like rolls, in some embodiments trills allow for additional inputsduring the trill. But in other embodiments, trills do not allowadditional inputs during the trill and alternating the trill inputs orfollowing the trill pattern is a requirement.

Real Guitar

Prior art rhythm-action games allowed the players to provide input viagame controllers that simulated musical instruments, mainly in shapeonly. One of the inventions herein allows the player to provide inputvia a controller that simulates playing an actual guitar. Variouscontrollers may be used with the game, as the controller itself is notimportant. For example, one controller usable with the invention has aplucking section and a simulated fingerboard. The fingerboard hasbuttons disposed on it arranged in rows (frets) and columns (strings).Each button simulates the space on the neck above (closer to theheadstock) the intersection of a particular string and a particular freton an actual guitar. The plucking section has metal or nylon “strings”approximately six inches long, all of the same gauge, which the playerstrums or plucks. The “strings” do not make musical sounds, rather theyindicate a player's strumming action using a binary plucked state, i.e.,string_plucked, or string_not_plucked. Alternatively, a guitar withactual strings and means for determining which strings are plucked maybe used, where the strings are electrically conductive and contact witha metal fret closes a circuit to indicate the player has pressed thestring against a particular fret. Strumming a string only provides abinary state similar to that of the button-based guitar controller.Regardless of the controller used, the invention provides a morerealistic guitar experience.

The guitar simulation invention receives input from the guitarcontroller specifying which frets the player is pressing and what stringthe player is strumming For simplification, it is understood that the“displaying” and “rendering” steps described herein are performed by theprocessor 120, with the help of the graphics processor 165 wherenecessary. Where reference is made to determining what input the playerprovided and if it was correct, those steps are performed by theinstrument analysis processor 155, or the processor 120, or acombination of both. Also, for simplification, the examples providedwill assume a controller with six columns and seventeen rows of buttonson the neck.

An example of the interface of the game invention is depicted in FIG.5A. The player is presented with six “strings” on the interfacesimulating that of E, A, D, G, B, and E. References made herein to the“E” string refer to the low E or the left-most E string unless otherwisestated. Similar to prior art rhythm action games, the notes or gems movetoward the player and the player is expected to provide the requiredinput as the note or gem cross the Now Bar, here indicated by 500. Inthe guitar simulation invention, gems can take many forms to indicatewhat the player is supposed to input. In FIG. 5A, based on the“tombstone” gem 505 on the D string with “4” on it, the player issupposed to push down the 4th row button on the controller for thecolumn that corresponds to D and strum the D string when the tombstonecrosses the Now Bar 510. After that, the player strums the A string withno buttons pressed down because the next tombstone gem 510 has a “0” onit, indicating an open strum.

FIG. 5B shows an additional way of displaying tombstone gems. Tombstonegems 505 and 510 are centered on the D and A strings respectively. Whentwo or more tombstone gems are on the same string in relatively closeproximity, however, displaying both gems centered on the string makesthem difficult to read. In the present invention, when two or moretombstone gems are presented on the same string, the tombstones can beoffset in order to make them more readable. In some embodiments, theoffsets of the tombstones are related to the fret number. For example,the lowest of the gems, i.e., the one representing frets closer to thehead stock of the guitar, are offset to the left. Then the tombstones onthe gems are progressively displayed shifted to the right on the stringas the represented fret is higher, i.e., closer to the strumming areaand back to the left if subsequent notes are lower on the string. InFIG. 5B, gem 515, which indicates the player is supposed to finger the5th fret, is shifted to the left. Gem 520, indicating the player issupposed to finger the 7th fret, which is closer to the strumming area,is shifted to the right. This way, when multiple gems are stacked closetogether, they are still individually readable. FIGS. 9 and 10 showadditional examples.

Beyond tombstone gems, to offer players a robust guitar simulation, asong data file with numerous configurations (similar to the onedescribed above with respect to the drums) is used to drive the realguitar presentation and gameplay. In one embodiment of the song datafile, each string, for each difficulty, is represented by a differentMIDI pitch. The fret that the player is expected to play (and what isrendered on the screen) for each string is represented by the MIDI notevelocity, whose value is 100 plus the fret number. For example, toindicate an open string, i.e., a 0th fret, the velocity of the pitch forthat string would be one hundred. To indicate the 5th fret should befingered, the velocity of the pitch associated with that string would be105, and so on. Beneficially, because MIDI provides 128 velocity values,this system provides at least 27 fret values for each string, whichexceeds the number of frets on a normal guitar.

In some implementations, each MIDI note can be given a modifier toaffect how the note is displayed or played by the player. Examples ofmodifiers are ghost, bend, muted, tap, palm mute, natural harmonic,pinch harmonic, slide, pick slide, whammy up, whammy down, bass pop,bass slap, and others. To apply a modifier, a particular MIDI notechannel is specified, e.g., a MIDI note channel of 1 is used for nomodifier (or “normal”, the default), a MIDI note channel of 2 is usedfor ghosted notes, a MIDI note channel of 3 is used for bends, and so onthrough bass slap having a MIDI note channel of 14. Additional modifiersare discussed later.

In a preferred embodiment, the guitar simulation invention indicates tothe player what frets he is fingering input by means of a wave-likechord shape displayed on screen. FIG. 6 shows a wave-like chord shape600, indicating that the player is pressing down the second button onthe G string. The magnitude, e.g., slope and height, of the shapeinforms the player how high on the neck the button is. For example, ifthe player is not pressing any buttons down, the wave is flat, or has noheight. If the player is pressing down the first button, the arch isslightly higher. If the player is pressing down the second button, thearch is slightly higher than if he were pressing down the first button.This continues for five buttons with the fifth button having the highestarch.

Several algorithms for drawing the chord shape are available. Althoughonly some are described herein, the description herein does not limitthe possible implementations. In one embodiment, each string has fivemagnitudes, e.g., heights 0 through 4. Optionally, there could be sevenmagnitudes, e.g., heights 0 through 6, but the specific number isvariable and one of skill in the art can implement any number ofmagnitudes or heights. A magnitude reflected by height will be usedherein, but a magnitude of width, or slope, or other dimension is alsopossible.

The baseline for building the chord shape wave is the fret number foreach string, with zero being used for open strings. For each string, ifthat string is an open string, i.e., the player is not fingering anyfret, the processor 120 assigns that string a height of zero and thechord shape does not display anything for that string. Then theprocessor 120 determines the minimum fret number for all non-openstrings, i.e., the strings that the player is fretting. The strings withthe minimum fret number are assigned height 1. For the other strings(with higher fretting), the minimum fret number is subtracted from thecurrent fret number and 1 is added to get that string's height. Finally,the string's height is clamped to be at or below the maximum height (4or 6, in our example). This prevents the chord shape from becomingunwieldy and difficult to read.

Another implementation begins similarly, by assigning height 0 to eachopen string. Then, the processor determines the maximum fret number forall non-open strings. If the maximum fret number is less than the numberof possible heights, e.g., five (for heights 0-4), then the height foreach string is the fret number for that string, with height 0 beinginvisible. If the maximum fret number is not less than the number ofpossible heights, strings with the maximum fret number use the maximumheight. For other frets, the height is the maximum height minus themaximum fret number, plus the actual fret number. Finally, the string'sheight is clamped to be at or above the minimum height, 0. Then, thechord shape is drawn relative to the 0th height.

Although the example just given is with respect to the first fivebuttons from the top of the neck, the five button limitation is actuallybased, in some implementations, on the lowest note that is to be fretted(as explained below with respect to FIG. 7). As the gems move toward theNow Bar, the player is expected to form the correct fingering such thatthe notes will pass through the chord shape and match it. This is mostuseful for chord gems (discussed below) because tombstone gems are all auniform height. Regardless, in FIG. 6, the player can tell he isfingering at least the correct string because the tombstone gem 605 ispassing through the chord shape the player has created.

In the song data file, chord gems are represented in much the same wayas single notes are. The only real difference is that multiple notes areauthored to be played at the same time. Beneficially, there is only asingle note per string, which corresponds to the way an actual guitar isfingered. And like chords played on an actual guitar, all notes in thechord are to be played by the player—that is to begin and end—at thesame time. Although multiple simultaneous notes are typically renderedas a single chord gem in a real guitar implementation, in someembodiments, there is a MIDI note where, when a NOTE_ON event is marked,any notes at the beginning of or during the NOTE_ON event, are renderedas separate gems and not as a chord gem.

A gem builder routine is executed by the processor 120 to display eachchord gem. Several implementations are possible. In one implementation,the gem builder routine is similar to that of the chord shape wavebuilder routine described above (since the gem has to pass through thechord shape). One difference though is that for chord gems, height 0 isdisplayed visibly at a height lower than 1, to indicate open stringsthat must be strummed For any string that should not be strummed, thecorresponding portion of the gem shape is omitted.

In other implementations, for each string played in the chord, theheight of the gem is determined for that string based on the fret valueused and the highest value used in the chord. A chord typically has upto four height values, excluding open strings. Alternatively, in otherimplementations, the height values of the gem are based on where theplayer's index finger is supposed to be. This allows the player to usehis index finger as a consistent reference.

In some embodiments, the highest fretted note in the chord produces thehighest height in the chord gem. The remaining fret values proceedlinearly with the fret values from the highest fretted value in thechord. As an example, a C major chord requires the player to put afinger on the 3rd fret of the A string, the 2nd fret of the D string,and the 1st fret of the B string. Thus, using the highest fretted value(3rd fret, A string) as the highest height, the gem slopes linearly fromleft to right, as shown below:

Although in this example, the gem slopes linearly, other interpolationsare possible in any of the embodiments described herein, e.g.,quadratic, exponential, logarithmic, or splines.

In this example, the gem builder uses the 4th (highest) height value forthe 3rd fret on the A string, the 3rd height value for the 2nd fret onthe D string, and the 2nd height value for the 1st fret of the B string.The 1st height value is not used. The two open strings played in thischord are represented by the open string graphic, or are not rendered aspart of the gem.

FIG. 7 shows more advanced chord gems. The number “5” in gem 700indicates to the player that the base of the expected chord shape startsfrom the 5th button on the A string. Several algorithms have beendevised to label the chord, e.g., to indicate “5” on gem 700. In oneimplementation, the first string going from low E to high E that has theminimal fret value is used as a baseline, excluding open strings. Thisapproach can be used to indicate where on the neck of the guitar theindex finger is placed. For example, for an E chord, a “2” may beattached to a gem starting on the A string. Another implementation isfor the processor 120 to determine, going from low E to high E, whatshould was strummed, for example, an E chord would have a “0” on the lowE string because the E string is the first string strummed, but it isopen. Another implementation is to determine what the first string,going from low E to high E, that should be both fretted and strummed.For example, again, the E chord would have a “2” on the A string becausethe A string is the first string that is fretted and strummed (the E isstrummed, but not fretted).

In the embodiment depicted in FIG. 7, the leftmost part of gem 700 is onthe A string. Starting with the 5th button, the shape indicates that theplayer is supposed to press down the 5th button on the A string and the7th button on the D string. Again, the fingering is indicated by thearch of the chord shape 705. To assist players that are already familiarwith guitar chords, an indicator of the chord is also provided. Becausethe gem 700 indicates a 5th fret on the A string and 7th fret D on the Dstring, this is a D chord. The D chord is indicated by the D (710) tothe left of the gem. Gem 715 indicates that, starting from the 7th fretof the A string, the player will push the 7th button and 9th button.This is the same fingering shape as gem 700, but two frets closer to thestrumming area on the guitar controller. Also, this is known as an Echord, so E (720) is indicated to the left of gem 715.

In FIG. 8A, gem 800 indicates the player is supposed to finger the 17thfrets on the B and E string. Additionally, the player is supposed tohold, or “sustain,” the note, which is indicated by the horizontalmarkings 805, 810 (blue highlighting) on the strings. The 17th frets onthose strings are E and A, which in part make up a Cmaj6 chord. As seenin FIG. 8A, the player is currently fingering fret 19 on the G stringand fret 18 on the B string. The fingering is based on the shape of thewave, as it relates to the gem 800. The shape of the wave 815 on the Gstring is approximately two steps higher than that of the gem 800, whichis represents input starting at fret 17. Since the B string fingering820 is only slightly higher than that of the gem 800, the wave indicatesthe player is fingering the 18th fret.

FIG. 8B shows an additional example of a sustain. Gem 825 indicatesthat, starting on the low E string, the player is supposed to finger the“0th” fret, i.e., leave the E string un-fretted, and finger the 2nd freton both the A and D strings, thereby playing the notes B and E.Together, open E, B, and E form an E chord. The player is then supposedto hold the chord as long as indicated by the sustain trails 830, 835,and 840.

While the player is fingering the 2nd fret on A and D properly (based onthe chord shape wave), the player is also fingering the 2nd fret on theG string, i.e., fretting an A. This is not the indicated E chord though.In some embodiments, strumming an incorrect string, here the G string,while pressing down on a fret, results in a miss. In other embodiments,if the player is fingering an additional fret, but does not strike thestring that is fretted, the result is not considered in determining ifthe player successfully played the cue as directed. In still otherembodiments, credit is given for successfully playing part of the chordor playing additional strings as long as the user played some or all ofthe required strings. The threshold for the partial chord can be if theplayer played a majority of the notes correctly, e.g., 3 out of 5, or itcan be related to the difficulty of the chord shape, e.g., if the shapeis complex with different fingers all on different frets, e.g., 2ndfret, 4th fret, and 5th fret, the player may be given credit forfingering two of the three. Alternatively, if the fingering is 0, 2ndfret, 2nd fret, the player may have to finger all three correctlybecause 0-2-2 is easier to finger then 2-4-5. Or, the method fordetermining a partial chord hit can be similar to that described belowin “Determining Successful Guitar Input.”

FIG. 9 shows a repeated pattern of pull-offs that are repeated onvarious strings. The initial fret the player is supposed to hold down isthe 4th fret on the G string. The player is supposed to strike the Gstring with the 4th fret held down (indicated by the light border aroundthe 4 tombstone in group 900. The player is then supposed to pull off tothe 2nd fret, and then pull off to an open string position (the “0th”fret) (pull offs are indicated by the darker borders around the “2” and“0” tombstones). The placement of the tombstone gems on the stringreiterates the earlier-discussed relationship between the left of thestring indicating a fret closer to the headstock of the guitar and theright of the string indicating a fret closer to the strumming area. Thepattern is repeated in group 905 on the D string, and then again ingroup 910 on the A string. As with the discussion above with respect totrills, the notes in FIG. 9 do not have to be played as pull-offs—theycan also be individually strummed

FIG. 10 depicts a screenshot showing a trill on the guitar simulation.The trill has the same sub-lane indicator 1000 a through 1000 b asdescribed above, but the player is expected to perform the trill on thesame string. Here, the player is expected to trill between frets 9 and12 on the B string. The trill rules described above apply, i.e., theplayer must alternate between 9 and 12 before the trill interval expires(e.g., 160 milliseconds) or the trill will break and normal beatmatchgame play will resume.

FIG. 11 depicts a screen shot showing arpeggiated chord. An arpeggiatedchord is a chord that is played across the notes of the chord, but thenotes are not played at exactly the same time. In FIG. 11, anarpeggiated chord is indicated by the highlighting 1100 a, 1100 b on thesides of the sub-lane. The shape of the chord will come down the trackand “click in,” remaining on the screen. Moving the arpeggio shape downthe track and clicking it in for the duration of the arpeggio serves thesame function as a chord gems—the player is expected to match hisfingering input (also show onscreen as a chord shape, but not shownhere) to the arpeggiated chord shape. Because the arpeggio chord shapestays in place, this tells the player to keep his left hand in place forthe next series of notes. In the song data file, notes that are modifiedas “ghost notes”, i.e., MIDI note channel of 2, are used by theprocessor 120 to build the chord shape for the arpeggio that is moveddown the screen. Beneficially, ghost notes also are used to analyze thechord for its proper name and quality when not all the notes of theintended chord are played right away. For example if the arpeggiatedsection is a D chord, but the player is to play only the D on the Astring and the D on the B string on the downbeat (and not other notes),the notes in the D chord that are not D are designated in the song datafile as ghost notes so they are not indicated on the screen.

In FIG. 11, the player is fingering a D chord. Specifically, a finger ison the 5th fret of the A string, a finger is on the 4th fret of the Dstring (indicated by the slight dip 1105 in the chord shape wave afterthe left-most 5th fret indication), a finger is on the 2nd fret of the Astring (another dip 1110, greater than that of 5th fret to 4th fret),and a finger is on the 3rd fret of the B string (indicated by the slightrise 1115 in the chord shape wave from 2nd fret to 3rd fret). Thearpeggiated chord notes 1120 and 1125 are strummed individually and theplayer does not have to move his hand.

In some embodiments, the player is rewarded with a bonus if the playerkeeps the chord shape for the arpeggiated chord throughout thearpeggiated section. In other embodiments, highlighting a chord asarpeggiated is simply a useful indicator to those that already know howto play a guitar of how a series of notes can be played. FIG. 12 showsan arpeggiated section with augments. The arpeggiated notes 1200, 1205,1210 of the chord are all colored the same color, here indicated byhorizontal lines (blue coloring). The augment 1215 to the D chord, i.e.,the 5th fret on the B string, i.e., an E, is indicated in a differentcolor, here, without coloring (yellow, or horizontal lines such as thoseon the “2” and “3” tombstone gems). Differing the color indicates to theplayer that the note is not part of the arpeggiated chord and that theplayer must move a finger to satisfy the note.

In the song data file, some the modifiers allow for different playingtechniques. For example, tapping—performed with the right hand insteadof using the right hand to strum—is a hammer on/pull off technique thatcan start a string of notes. Tapping is specified by a MIDI note channelof 5. Other modifiers for playing techniques are also contemplated. Forexample, a modifier of “force hopos on” causes all notes displayed toindicate that the player should play them as hammer ons/pull offs. Amodifier of “force hopos off” causes all notes displayed to not behammer ons/pull offs.

Some modifiers change how information of on the screen is displayed. Forexample, a “slash chords on” indicator in the song data file causes theprocessor 120 to show a slash in the chord name to indicate a chord withan inversion. A slash chord has an inversion, or non-chord tone in thebass, e.g., a C major chord with an E in the bass would display as C/Eto the left of the sub-lane. A “chord naming off” modifier can be usedto turn off chords names so they are not displayed.

Also contemplated is a “loose strumming” modifier. This allows theplayer to strum in the guitar in a style similar to that of Bob Dylan.This modifier is authored using modifier midi notes over the top ofchords. It allows plays to player looser and just hit higher, lower, orall strings of chords and also loosens the timing window in which theplayer must provide the expected input.

FIG. 13 shows gems indicating left hand (fret hand) muting may be used.The gems 1300, 1305 indicate that the player can strum the strings, buthe does not have to. Any strumming will not be counted as a miss.Additionally, in some implementations, any fret is accepted for a mutedstrum. For left hand mutes, the strings that must be played arespecified in the song data file, but the player can play the stringswith his fingers on any fret, including no fretting, i.e., open strings.The determination of whether the player hit enough of the designatedstrings, or too many non-designated strings, can be the same as forregular chords, or it can have its own thresholds, which can bepredetermined for the game, or designated on a per-song, per-difficulty,per-song-per-difficulty, or per-event basis.

In some implementations, the game may also specify that the user performa slide action starting from a left hand mute or a regular gem. Theslide specifies whether the player's hand should go up the neck or downthe neck of the guitar, but the player must be providing input duringthe duration of the slide; if not, and the user picks up his finger, theslide is considered a miss. For a regular note slide, the initial notemust be played and at least one note after the initial note—in thespecified direction—should be hit. For example, for a regular noteupward slide starting on a G on the low E string, the player must playthe G and then slide up the neck (away from the headstock, towards thebridge) to at least one note above G on the low E string, e.g., A, A#,etc.

For a left hand mute slide, the initial note is unimportant, but similarto regular note slides, at least one note after the initial note—in thespecified direction—should be hit. Beneficially, if an the author of thedata file wants to require a specific end gem for the left hand muteslide, the author can assign regular gems just beyond the end of theslide.

To designate a section as a slide section, typically there is a MIDINOTE ON event for a particular MIDI note in the data file, e.g., MIDInote 31. In some embodiments, a different MIDI note is used for eachdifficulty when indicating a slide, e.g., 31 for easy, 65 for medium, 89for hard, and 113 for expert.

In some embodiments, rather than specify a direction of a slide, thegame determines it programmatically. Specifically, if the starting gemof the slide is on the 7th fret or below, the slide will rendered as aslide going up the neck towards the bridge. If the slide starts on afret above the 7th fret, e.g., the 8th fret, the slide will go down theneck towards the headstock. In some implementations, if the slide MIDInote has a flag set in a flip channel, e.g., channel 11, the slide willgo in the opposite direction than the programmatically determineddirection described above.

In some embodiments, success is measured by determining if successiveinputs are received within a timing threshold. There is no scoring ofwhat notes the player is inputting or what sequence he is providing themin. In some implementations though, the notes must all be hit insequence for each fret running up or down on the guitar neck. In someembodiments, the notes must all be hit in a monotonic order, i.e., notevery note has to be hit, but each note hit must be higher than the onehit before it (for monotonically increasing) or lower (for monotonicallydecreasing).

In some embodiments, palm mutes are also an option. Palm mutes areperformed with the strumming hand, and modify the timbre of the notesbeing played.

With the myriad of fingering and plucking techniques, and with thenumerous gem shape possibilities, the guitar simulation includes amethod for determining if the user has successfully played the expectedpart correctly, or at least close enough to correctly to give himcredit.

Determining Successful Guitar Input

In one embodiment, the method for determining if the player has providedthe correct input is as follows. For this example, the term “chord note”is used to mean a combination of a string value indicating the string tobe struck and a fret value indicating the fret on that string to be helddown. A fret value of zero indicates no fret is to be held down, but thestring should still be struck, i.e., an “open strum.” A first chord noteis considered to match a second chord note if the string value of thefirst chord note matches the string value of the second chord note andthe fret value of the first chord note matches the fret value of thesecond chord note.

If the data in the song data file specifies only one chord note to beplayed at a particular time, the player's input is correct if the playerplays a matching chord note within a timing threshold of that particulartime and plays no more than one non-matching chord note within thetiming threshold.

If the data in the song data file specifies two chord notes to be playedat the same time, the player's input is correct if the player matchesone chord note within a timing threshold of that particular time andeither 1) matches the other chord note in the song data file within thetiming threshold or 2) plays no more than one non-matching chord notewithin the timing threshold.

If the song data file specifies two or more notes to be played at aparticular time, and all notes are open strings (or 0th fretfingerings), the player's input is correct if the player matches morethan a fraction, e.g., ¾ths, of the notes correctly and the playerplays—that is strikes—no more than a multiple of the number of stringscalled for, e.g., 2×. In some embodiments, fractions are rounded down tomake the requirements easier. For example, if the player is supposed tomatch two chord notes, and he matches one note of the two and strikes noother strings, that would normally be a miss because it is only half thenumber he is supposed to play correctly, when he is supposed to in facthit ¾ths of them. But in some embodiments, the ¾ths requirement isrounded down to the nearest sensible fraction, e.g., one-half for twonotes, and matching only one of the two notes is still considered asuccess. In some embodiments, even if the player satisfies onecriterion, but fails the other, it is still a miss. For example, if theplayer is supposed to match two chord notes and he matches one chordnote correctly but strikes five strings, that is a miss because he isallowed to strike at most four strings (i.e., no more than 2×2).

Additional examples are illustrative. Where two chord notes arespecified, and the player hits one of the notes, it is considered a hitif the player does hit not the second note but strums a total of four orfewer strings. In the scenarios of three, four, five, or six notes beingspecified in the data file, the player can strum all six strings andthat is considered a hit as along as the player plays two, three, three,or four notes correctly respectively, within the timing threshold.

If the song data specifies three chord notes with two or three of thechord notes fretted, for example, as a power chord, the play's inputwill be considered correct if the player matches two or three correctnotes or the player plays a fraction, e.g., one-half, of the frettedstrings correctly, within the timing threshold.

If the song data file specifies three or more notes, some of which arefretted, the player's playing will be considered correct if the playerplays three or more correct notes or plays a fraction, e.g., one-half,of the fretted strings correctly.

Variations are allowed, e.g., constraints that call for “no more thanone” can instead be “no more than two” or “no more than three” and soon, and any values given are understood to be examples only. Actualvalues are variable and one of skill in the art would understand thatthe values given herein are not constraints.

In some embodiments, the data in the song file is used as a key into alookup table or the basis for program logic that determines the minimumnumber of correct notes that must be played or strings that must be hit,the maximum number of incorrect strings that can be hit, and/or themaximum number of correct notes that may be hit outside of the timingwindow (or combinations of these). These constraints can be used inconjunction with the player's performance data to determine whether astreak is broken, whether the corresponding audio is played, whether andby how much the crowd indicator is modified, and/or how much the scoreis modified. For example, if a maximum of two incorrect strings can behit based on the lookup table for a particular chord in the song file,and the player plays three incorrect strings, the player's streak may bebroken, the audio muted, the crowd indicator lowered, and/or their scorenot increased, or any combination of these.

Alternatively, there can be separate entries in the table—or separatetables—(or program logic) that independently control whether a streak isbroken, whether the corresponding audio is played, whether and by howmuch the crowd indicator is modified, and how much the score ismodified, based on the player's performance. For example, if a maximumof two incorrect strings can be hit based on the lookup table for aparticular chord in the song file, and the player plays three incorrectstrings, their streak may be left unbroken, the audio may not be muted,but the crowd indicator may be lowered, and their score not increased.

In one embodiment, the following algorithm is used to determine if theinput received from the controller is considered correct. First it isdetermined if any strings that are designated as important were missed.If so, the input is considered incorrect. If the data in the song datafile specifies only one chord note to be played at a particular time,the player must match the target chord note within the timing window andhit no more than one other string within the timing window. If the songdata file indicates two chord notes are expected, the player must matchat least one chord note, have fretted both correctly (but possibly nothave strummed one of them), and fret and strum no more than one otherstring.

If the chord notes in the song data file indicate that an open powerchord is expected, i.e., three or more strummed strings, none of whichare fretted, the input must match at least ¾ths of the target strings.If the number of target strings is not evenly divisible by ¾ths, thenext lower whole number is used as the threshold. If the number ofcorrectly input target strings is at or above this threshold, the inputis considered correct.

If the chord notes in the song data file indicate that a standard powerchord is expected, i.e., three strummed strings, with two or threestrings fretted, the input must match at least two of the targetstrings. Otherwise, if the chord notes in the song data file indicatethat a non-power chord is expected, i.e., three or more strummedstrings, with one or more strings fretted, the input must match at leastthree strings, including at least half of the fretted strings. In someembodiments the power chord evaluation takes precedence over thenon-power chord evaluation. In other embodiments, the non-power chordevaluation takes precedence.

In some embodiments, the program logic dictates, or the key to thelookup table is based on, a number of notes that must be strucksubstantially simultaneously by the player to execute the specifiedperformance. For example, if the data in the song data file specifiesthat three notes must be struck substantially simultaneously, the tablemight indicate that a minimum of one string must be correct, a maximumof one string may be incorrect, and a maximum of one string may becorrect, but played slightly outside of the timing window.

In some embodiments, the key to the lookup table is based on, or theprogram logic dictates, the chord shape that must be played by theplayer. For simpler chords such as E major, more notes must be played.For more difficult chords such as C major, fewer notes may be played.Alternatively, where three notes (C, E, G) are displayed to the player,only two in particular may be really important, e.g., the root (C) andthe 5th (G). The song data file indicates that player is to be givencredit for playing the C and G correctly (only two notes), but not if heplays only the C and E (still two notes, but not all of the importantnotes). Which notes must be hit for a given chord can be stored in thelookup table or specified programmatically and compared the player'sinput to the important notes stored in the lookup table for that chordat that time.

FIG. 14 depicts gems indicating an area strum. The player is directed tostrum strings of a chord that he is already holding down, and theflares—or thicker parts of the gem—indicate the direction the player issupposed to strum. For example, gems 1400, 1405, and 1410 have flares onthe left. Looking at a guitar from the left (or down), the flaresindicate that the player is supposed to provide a downward strum. Gem1415, however, has a flare on the right side, which means the player issupposed to strum up.

Area strums use one of three MIDI note markers, i.e., high, medium, andlow in the song data file (although more gradations are possible). Forany chord played during the area strum NOTE_ON, only the specifiedstrings are considered when the processor 120 or instrument analyzer 125determines if the chord was hit. The following are examples of how themarkers can be assigned, but the invention is not limited to thesevalues: high is the high pitched notes (G, B, E), low is the low pitchednotes (E, A, D), and medium is A, D, G, B. These subsets of stringsfilter the data in the song data file, and alter the number whendetermining if the song data file specifies X number of notes in thealgorithm described above. For example, if the song data file specifiesa full 6-note E chord, but the low area strum marker is set to NOTE_ON,only 3 notes are “specified” by the song data file, i.e., E, A, D forthe purposes of the algorithm.

Keyboard Gameplay

FIG. 15 depicts a keyboard implementation of the game that allows forpartial chord hits on a musical keyboard. In FIG. 15, gems 1500, 1505,1510 approach a simulated keyboard 1515, which serves the Now Bardescribed above. The gems 1500, 1505, 1510 indicate which keys on thekeyboard the player is supposed to press (1520, 1525, 1530,respectively) as the gems cross the simulated keyboard. But a playerthat is just learning keyboard may have difficulty hitting all three ormore notes in a chord, especially when the chord involves a mix of blackkeys 1520, 1525 and white keys 1530. To prevent the player from becomingdiscouraged, credit is sometimes given for partial chord hits. Asdescribed above with respect to the guitar simulation, in someimplementations, if the player presses a certain number of the keys onthe keyboard at the correct time—but not necessarily all of them—theplayer is given credit as if he had pressed all of the required keys.For example, as explained above with respect to the guitar, a player isallowed for a small amount of time after the chord's timing window tofret the correct note and still receive some credit for the chord.Similarly, for a simulated keyboard, a player is allowed to correct amissed keypress shortly after the timing window of the chord on thekeyboard and still receive credit. Advantageously, this threshold isalterable on a per-difficulty, per-song, or per-chord basis.

Partial chord hits—in both keyboard and guitar simulation describedherein—are a departure from prior art games' handling ofnot-completely-accurate gameplay. In prior art games, if a player wasexpected to provide input for more than one button, e.g., two gems werepresented as crossing the Now Bar at the same time, the player would getzero points if he missed even one of the notes. Additionally, missingnotes would break the player's consecutive note streak and impact theplayer's “crowd meter,” causing the simulated crowd to adopt a negativeattitude towards the player's onscreen avatar, such as booing the playerif he performed poorly enough.

In the present inventions—again both keyboard and guitar simulation—eachgem is scored individually so the player receives partial points forpartial chord hits, based on how many gems the player hits. For example,if the player hits two of four notes (assuming 25 points per note), theplayer receives 50 points. If the player hits three of the four notes,the player receives 75 points. Additionally, the contribution to thecrowd meter is proportional to the ratio of the number of notes theplayer successfully played versus the number of notes that werespecified in the song data file for the chord. For example, if theplayer successfully plays 3 out of 3 notes in a chord, the crowd meteris incremented 1 unit. If the player only plays two of the three notesin the chord, the crowd meter is still incremented, but only by 0.67units.

To balance the credit given for providing partial input, in theseimplementations, the player is often penalized for missing one of theexpected notes. If the player misses any notes in a keyboard chord, theconsecutive played notes counter is reset, i.e., the player's streak isbroken. Alternatively, partial chord hits may not count against theplayer's streak, for example, on easier difficulty settings.

In some embodiments, the audio produced by the game is also altered ifthe player makes a partial chord hit. For example, in prior art games,any miss would mute the audio of the instrument's track. With partialchord hits that is not necessarily the case in this embodiment. Instead,the audio is muted only if the player misses miss all of the notes.

Sustains for keyboards are also different than in prior art games. Inthose, letting go of one note muted the track and the sustain for theentire chord was lost. In the present invention, the sustain is lost orheld for each note independently. In some embodiments, the player canalso re-attack the dropped note if the sustain is still held for theother notes.

In some embodiments, when the player presses a key that would normallybe considered a wrong note, the incorrect keypress is forgiven incertain situations. Specifically, if the key that is pressed isassociated with a sub-lane that is within a certain number of nearbysub-lanes (“neighboring sub-lanes,” which could be one or two or anynumber of sub-lanes near the current sub-lane) to a sub-lane with an gemin it, and the keypress is within a certain threshold time before orafter the authored gem and then if the player actually presses the keycorresponding to the sub-lane with the authored gem, then the errantkeypress is ignored. Beneficially, this allows a player to occasionallystrike an errant key and not have it affect his score or his streak ofconsecutive correct inputs (although on certain difficulties streak orscore or both could be affected).

To provide this functionality, several conditions must be met. First,the processor determines, for a key that if struck would normally beconsidered a miss, if there are one or more gems in a neighboringsub-lane. The processor also determines if the errant press occurswithin a threshold amount of time, e.g., 100 milliseconds, of the gemfrom a neighboring sub-lane crossing the Now Bar. If not, the processorcounts the keypress as a miss. If the key is still down after anotherthreshold amount of time, e.g., also 100 milliseconds, the keypress isconsidered a miss (this prevents a player from just holding down thewrong note because he knows he will not be penalized for it). It shouldbe noted that although the example thresholds are the same amount oftime, in some implementations they can be different. If the key presswas released before the second threshold amount of time, that keypressis a candidate for forgiveness. But it is not ignored unless the playerthen presses the right key.

If the player hits the correct key in a neighboring sub-lane, the errantpress is forgiven and ignored as input. Optionally, a correctly hitadjacent key only allows a single forgiveness candidate to go through.For example, the player cannot errantly press both a C and an E and havethe C and E both be forgiven by hitting the correct key, i.e., D.

Each sub-lane has a fixed set of sub-lanes that are consideredneighboring sub-lanes. In some implementations, a neighboring sub-lanecould be the neighbors on a chromatic scale, that is, notes within ahalf-step or whole-step of the note in either direction. In otherimplementations, a neighboring sub-lane could be the spatial neighbor,that is, for white notes, the neighboring white notes, and for blacknotes, the neighboring black notes. And in some implementations, acombination of half-step neighbors and spatial neighbors is used. Inthose implementations, the neighbors of an F# are F, G, and G#. Theneighbors of C are B, C#, and D. The neighbors of G# are F#, G, A, andA#. And so forth.

FIG. 16 depicts a series of cues indicating a glissando on a keyboard. Aglissando is when the player plays a series of notes up or down thekeyboard in rapid succession. Usually this is performed by dragging afinger up or down the keys (popularized by piano players such as JerryLee Lewis). Glissando gems 1600 a through 1600 f (collectively 1600)typically have no tail, as they are intended to be played very quickly,but they are typically rendered with a graphical effect, e.g., a sheenrepresented by the diagonal line on 1600, and absent from, e.g., 1500,1505, and 1510 in FIG. 15, to indicate that they are glissando gems.

Because a player may slip or miss keys, the player is not required tohit any particular key during a glissando. When a MIDI NOTE_ON eventoccurs for the glissando, e.g., for MIDI_NOTE 126, the user can provideany input at a rate equal to or faster than a threshold rate. To achievethis, a timer is used that expires in a fixed amount of time and isreset with each input (much like the roll or trill functionalitydescribed herein). In some versions, a glissando is authored as a singleMIDI note for the duration of the glissando and the gems that aredisplayed to the player are authored as non-glissando gems usually are.Beneficially, if an the author of the data file wants to require aspecific start gem or an end gem to the glissando, the author can assignregular gems just outside one end or the other of the glissando.

During the glissando, success is measured by determining if successiveinputs are received within a timing threshold. There is no scoring ofwhat notes the player is inputting or what sequence he is providing themin. In some implementations though, the notes must all be hit in thecorrect order, i.e., note for note up or note for note down thekeyboard. Gems participating in a glissandi section are typicallysurrounded by an indicator, e.g., similar to the indicator for rolls andtrills, or the gems are connected together, but neither of these isrequired for all embodiments. In other embodiments, the notes must allbe hit in a monotonic order, i.e., not every note has to be hit, buteach note hit must be higher than the one hit before it (formonotonically increasing) or lower (for monotonically decreasing).

FIG. 17 shows an indicator 1700 that the set of keys the user is playingwill shift soon. This is helpful so that the player can adjust his handbefore the keys shift to a lower or higher set of keys or lower orhigher octave. In some implementations, the indicators 1700 are on theopposite side of the track from the sub-lanes which will shift out ofview. In other implementations, the indicators 1700 are on the same sideof the track as the sub-lanes shifting out of view (with the arrowsindicating the direction the lane will shift). Typically, the finalshift indicator in the sequence corresponds with a fadeout of thesub-lanes that will be shifting out of view and once the final shiftindicator hits the Now Bar 1705, the shift happens over a fixed amountof time or a fixed number of beats, e.g., four beats.

To generate the shift indicators, the shift initiation data—and therange or number of sub-lanes that will be shifted—is written in the MIDIdata file. The processor reads the shift data from the MIDI file anddetermines where to render the indicators based on that data. In someimplementations, the arrows are rendered much like the gems on thetrack. In other implementations, the arrows are rendered underneath thetrack and gems. In some implementations, the arrows are a mask layer,separate from the layer rendering the gems or the track, which isoverlaid on the displayed track. The arrows are typically rendered onthe beat lines, every beat for three beats before the shift (and thenonce on the shift) so that the player can see the shift coming. When themask is overlaid on the track, the display shows both the gems and thearrows together.

In some implementations, there is also a black track mask 1710 thatextends from the point of the lane shift up the track (later in time).Its width is determined by how much of a shift is occurring and itcovers all the sub-lanes which will be shifted off the track, in effectdimming the sub-lanes that will no longer be viewable.

The above-described techniques can be implemented in digital electroniccircuitry, or in computer hardware, firmware, software, or incombinations of them. The implementation can be as a computerized methodor process, or a computer program product, i.e., a computer programtangibly embodied in a machine-readable storage device, for executionby, or to control the operation of, data processing apparatus, e.g., aprogrammable processor, a computer, a game console, or multiplecomputers or game consoles. A computer program can be written in anyform of programming language, including compiled or interpretedlanguages, and it can be deployed in any form, including as astand-alone program or as a module, component, subroutine, or other unitsuitable for use in a computing environment. A computer program can bedeployed to be executed on one computer or game console or on multiplecomputers or game consoles at one site or distributed across multiplesites and interconnected by a communication network.

Method steps can be performed by one or more programmable processorsexecuting a computer or game program to perform functions of theinvention by operating on input data and generating output. Method stepscan also be performed by, and apparatus can be implemented as a gameplatform such as a dedicated game console, e.g., PLAYSTATION® 2,PLAYSTATION® 3, or PSP® manufactured by Sony Corporation; WII™, NINTENDODS®, NINTENDO DSi™, NINTENDO DSi XL™ or NINTENDO DS LITE™ manufacturedby Nintendo Corp.; or XBOX® or XBOX 360® manufactured by MicrosoftCorp.; or special purpose logic circuitry, e.g., an FPGA (fieldprogrammable gate array) or an ASIC (application-specific integratedcircuit) or other specialized circuit. Modules can refer to portions ofthe computer or game program or gamer console and/or theprocessor/special circuitry that implements that functionality.

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any kind of digital computer or gameconsole. Generally, a processor receives instructions and data from aread-only memory or a random access memory or both. The essentialelements of a computer or game console are a processor for executinginstructions and one or more memory devices for storing instructions anddata. Generally, a computer also includes, or is operatively coupled, toreceive data from or transfer data to, or both, one or more mass storagedevices for storing data, e.g., magnetic, magneto-optical disks, oroptical disks. Data transmission and instructions can also occur over acommunications network. Information carriers suitable for embodyingcomputer program instructions and data include all forms of non-volatilememory, including by way of example semiconductor memory devices, e.g.,EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internalhard disks or removable disks; magneto-optical disks; and CD-ROM andDVD-ROM disks. The processor and the memory can be supplemented by, orincorporated in special purpose logic circuitry.

To provide for interaction with a player, the above described techniquescan be implemented on a computer or game console having a displaydevice, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display)monitor, a television, or an integrated display, e.g., the display of aPSP® or Nintendo DS. The display can in some instances also be an inputdevice such as a touch screen. Other typical inputs include simulatedinstruments, microphones, or game controllers. Alternatively input canbe provided by a keyboard and a pointing device, e.g., a mouse or atrackball, by which the player can provide input to the computer or gameconsole. Other kinds of devices can be used to provide for interactionwith a player as well; for example, feedback provided to the player canbe any form of sensory feedback, e.g., visual feedback, auditoryfeedback, or tactile feedback; and input from the player can be receivedin any form, including acoustic, speech, or tactile input.

The above described techniques can be implemented in a distributedcomputing system that includes a back-end component, e.g., as a dataserver, and/or a middleware component, e.g., an application server,and/or a front-end component, e.g., a client computer or game consolehaving a graphical player interface through which a player can interactwith an example implementation, or any combination of such back-end,middleware, or front-end components. The components of the system can beinterconnected by any form or medium of digital data communication,e.g., a communication network. Examples of communication networksinclude a local area network (“LAN”) and a wide area network (“WAN”),e.g., the Internet, and include both wired and wireless networks.

The computing/gaming system can include clients and servers or hosts. Aclient and server (or host) are generally remote from each other andtypically interact through a communication network. The relationship ofclient and server arises by virtue of computer programs running on therespective computers and having a client-server relationship to eachother.

The invention has been described in terms of particular embodiments. Thealternatives described herein are examples for illustration only and notto limit the alternatives in any way. The steps of the invention can beperformed in a different order and still achieve desirable results. Someaspects of the inventions described herein are reflected in thefollowing claims, but the inventions are not limited to these.Specifically there are apparatuses configured to carry out the steps ofthe following methods, apparatuses whose components embody the claimelements below and there are computer program products, tangibleembodied in a computer-readable storage medium, which includesinstructions operable to cause a data processing apparatus to performthe following methods.

1. A method of scoring a performance of a guitar part in a rhythm-actiongame, executed on a game platform in communication with a display and acontroller, comprising: (a) receiving an input performance from thecontroller comprising at least one input chord note, each input chordnote comprising an input string value corresponding to a struck stringand an input fret value associated with the input string value; (b)providing a reference performance comprising at least two referencechord notes to be input at a target time, each reference chord notecomprising a reference string value and a reference fret valueassociated with the reference string value; (c) determining a degree ofmatching between the input performance and the reference performance;and (d) assigning a score to the input performance based on the degreeof matching.
 2. The method of claim 1, wherein determining the degree ofmatching between the input performance and the reference performancecomprises determining that an input chord note of the at least one inputchord notes is a correct input if the input chord note matches areference chord note of the at least two reference chord notes within arange of the target time, wherein the input chord note matches areference chord note if the input string value is equal to the referencestring value and the input fret value is equal to the reference fretvalue.
 3. The method of claim 2, wherein determining the degree ofmatching further comprises determining a count of correct inputs in theinput performance
 4. The method of the claim 3, further comprisingdetermining a ratio of correct inputs based on the count of correctinputs and a count of the at least two reference chord notes.
 5. Themethod of claim 4, wherein the score is assigned based on the ratio ofcorrect inputs being above or equal to a threshold value.
 6. The methodof claim 5, wherein the threshold value is 0.5.
 7. The method of claim3, wherein the score is assigned based on a table lookup.
 8. The methodof claim 7, wherein the table lookup is based on the count of correctinputs.
 9. The method of claim 7, wherein the table lookup is based on acount of the at least two reference chord notes.
 10. The method of theclaim 3, further comprising determining a count of incorrect inputs inthe input performance by subtracting the count of correct inputs from acount of the at least one input chord notes.
 11. The method of the claim3, further comprising determining a ratio of incorrect inputs based onthe count of incorrect inputs and a count of the at least two referencechord notes.
 12. The method of claim 11, wherein the score is assignedbased on the ratio of incorrect inputs being below or equal to athreshold value.
 13. The method of claim 12, wherein the threshold valueis 0.5.
 14. The method of claim 12, wherein the score is assigned basedon a table lookup.
 15. The method of claim 14, wherein the table lookupis based on the count of incorrect inputs.
 16. The method of claim 14,wherein the table lookup is based on a count of the at least tworeference chord notes.
 17. The method of claim 1, wherein an input fretvalue of zero represents an open strum.
 18. The method of claim 1,wherein a reference fret value of zero represents an open strum.
 19. Themethod of claim 1, further comprising resetting a streak counter basedon the degree of matching.
 20. The method of claim 1, furthercomprising, altering a musical output corresponding to the guitar partbased on the degree of matching.
 21. The method of claim 1, furthercomprising, adjusting a crowd meter based on the degree of matching.